﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using GestionEducativa.Models;

namespace GestionEducativa.DataLayer
{
    public class FacturaRepository
    {
        Gestion_EducativaEntities ObjectContex = new Gestion_EducativaEntities();

        public void InsertarFactura(Facturas f)
        {
            ObjectContex.AddToFacturas(f);
            ObjectContex.SaveChanges();
        }

        public void BorrarFactura(int idf)
        {
            Facturas f = (from fx in ObjectContex.Facturas where fx.idfactura == idf select fx).First();
            ObjectContex.Facturas.DeleteObject(f);
            ObjectContex.SaveChanges();
        }

        public void ActualizarFacturas(Facturas fc)
        {
            Facturas f = (ObjectContex.Facturas.First(fx => fx.idfactura == fc.idfactura ));

            f.matricula = fc.matricula;
            f.monto = fc.monto;
            f.fecha = fc.fecha;
            f.estado = fc.estado;

            ObjectContex.SaveChanges();
        }

        public IEnumerable<Facturas> TraerFacturasTodas()
        {
            IEnumerable<Facturas> ListaDataFacturas = (from f in ObjectContex.Facturas select f).AsEnumerable();
            return ListaDataFacturas;
        }

        public IEnumerable<Facturas> TraerFacturasAlumno(string mat)
        {
            IEnumerable<Facturas> ListaDataFacturas = (from fx in ObjectContex.Facturas where fx.matricula == mat select fx).AsEnumerable();
            return ListaDataFacturas;
        }

        public IEnumerable<Facturas> TraerUnicaFactura(int id)
        {
            IEnumerable<Facturas> f = (from fd in ObjectContex.Facturas where fd.idfactura == id select fd).AsEnumerable();
            return f;
        }
        public Facturas TraerUnicaFacturaObt(int id)
        {
            Facturas f = (from fd in ObjectContex.Facturas where fd.idfactura == id select fd).First();
            return f;
        }

        public IEnumerable<Facturas> TraerFacturaRangoFechas(DateTime fecha1, DateTime fecha2)
        {
            IEnumerable<Facturas> fdate = (from fx in ObjectContex.Facturas where fx.fecha >= fecha1 && fx.fecha <= fecha2 select fx).AsEnumerable();
            return fdate;
        }


        public IEnumerable<Facturas> FacturasAlumnoFecha(string mat, DateTime fecha1, DateTime fecha2)
        {
            IEnumerable<Facturas> fapf = (from fx in ObjectContex.Facturas where fx.matricula == mat && fx.fecha >= fecha1 && fx.fecha <= fecha2 select fx).AsEnumerable();
            return fapf;
        }
    }
}